
 1000  *SAVE S.PUTNEY'S SPIRAL
 1010  *
 1020  *
 1030  *      FAST SPIRAL SCREEN CLEAR
 1040  *
 1050  *      CHARLES H. PUTNEY
 1060  *      18 QUINNS ROAD
 1070  *      SHANKILL
 1080  *      CO. DUBLIN
 1090  *      IRELAND
 1100  *
 1110  *
 1120  *
 1130  *
 1140  *--------------------------------
 1150  *
 1160  *      TEXT PAGE BASE ADDRESSES
 1170  *
 1180  *
 1190  R0     .EQ $400
 1200  R1     .EQ $480
 1210  R2     .EQ $500
 1220  R3     .EQ $580 
 1230  R4     .EQ $600
 1240  R5     .EQ $680
 1250  R6     .EQ $700
 1260  R7     .EQ $780
 1270  R8     .EQ $428
 1280  R9     .EQ $4A8
 1290  R10    .EQ $528
 1300  R11    .EQ $5A8 
 1310  R12    .EQ $628
 1320  R13    .EQ $6A8
 1330  R14    .EQ $728
 1340  R15    .EQ $7A8
 1350  R16    .EQ $450
 1360  R17    .EQ $4D0
 1370  R18    .EQ $550
 1380  R19    .EQ $5D0 
 1390  R20    .EQ $650
 1400  R21    .EQ $6D0
 1410  R22    .EQ $750
 1420  R23    .EQ $7D0
 1430  *
 1440  *
 1450  *--------------------------------
 1460  *
 1470  *      MACRO DEFINITIONS
 1480  *
 1490  *
 1500         .MA MOVE 
 1510         LDA ]1
 1520         STA ]2
 1530         .EM
 1540  *
 1550  *
 1560  *
 1570         .MA MOVER    MOVE RIGHT ROW,COLLOW,COLHIGH FROM 0-39
 1580         .DO ]3>]2
 1590         >MOVE ]1+]3-1,]1+]3
 1600         .FIN
 1610         .DO ]3-1>]2
 1620         >MOVE ]1+]3-2,]1+]3-1
 1630         .FIN
 1640         .DO ]3-2>]2
 1650         >MOVE ]1+]3-3,]1+]3-2 
 1660         .FIN
 1670         .DO ]3-3>]2
 1680         >MOVE ]1+]3-4,]1+]3-3
 1690         .FIN
 1700         .DO ]3-4>]2
 1710         >MOVE ]1+]3-5,]1+]3-4
 1720         .FIN
 1730         .DO ]3-5>]2
 1740         >MOVE ]1+]3-6,]1+]3-5
 1750         .FIN
 1760         .DO ]3-6>]2
 1770         >MOVE ]1+]3-7,]1+]3-6
 1780         .FIN
 1790         .DO ]3-7>]2
 1800         >MOVE ]1+]3-8,]1+]3-7
 1810         .FIN
 1820         .DO ]3-8>]2
 1830         >MOVE ]1+]3-9,]1+]3-8
 1840         .FIN
 1850         .DO ]3-9>]2
 1860         >MOVE ]1+]3-10,]1+]3-9
 1870         .FIN
 1880         .DO ]3-10>]2
 1890         >MOVE ]1+]3-11,]1+]3-10
 1900         .FIN
 1910         .DO ]3-11>]2
 1920         >MOVE ]1+]3-12,]1+]3-11
 1930         .FIN
 1940         .DO ]3-12>]2
 1950         >MOVE ]1+]3-13,]1+]3-12
 1960         .FIN
 1970         .DO ]3-13>]2
 1980         >MOVE ]1+]3-14,]1+]3-13
 1990         .FIN
 2000         .DO ]3-14>]2
 2010         >MOVE ]1+]3-15,]1+]3-14
 2020         .FIN
 2030         .DO ]3-15>]2
 2040         >MOVE ]1+]3-16,]1+]3-15
 2050         .FIN
 2060         .DO ]3-16>]2
 2070         >MOVE ]1+]3-17,]1+]3-16
 2080         .FIN
 2090         .DO ]3-17>]2
 2100         >MOVE ]1+]3-18,]1+]3-17
 2110         .FIN
 2120         .DO ]3-18>]2
 2130         >MOVE ]1+]3-19,]1+]3-18
 2140         .FIN
 2150         .DO ]3-19>]2
 2160         >MOVE ]1+]3-20,]1+]3-19
 2170         .FIN
 2180         .DO ]3-20>]2
 2190         >MOVE ]1+]3-21,]1+]3-20
 2200         .FIN
 2210         .DO ]3-21>]2
 2220         >MOVE ]1+]3-22,]1+]3-21
 2230         .FIN
 2240         .DO ]3-22>]2
 2250         >MOVE ]1+]3-23,]1+]3-22
 2260         .FIN
 2270         .DO ]3-23>]2
 2280         >MOVE ]1+]3-24,]1+]3-23
 2290         .FIN
 2300         .DO ]3-24>]2
 2310         >MOVE ]1+]3-25,]1+]3-24
 2320         .FIN
 2330         .DO ]3-25>]2
 2340         >MOVE ]1+]3-26,]1+]3-25
 2350         .FIN
 2360         .DO ]3-26>]2
 2370         >MOVE ]1+]3-27,]1+]3-26
 2380         .FIN
 2390         .DO ]3-27>]2
 2400         >MOVE ]1+]3-28,]1+]3-27
 2410         .FIN
 2420         .DO ]3-28>]2
 2430         >MOVE ]1+]3-29,]1+]3-28
 2440         .FIN
 2450         .DO ]3-29>]2
 2460         >MOVE ]1+]3-30,]1+]3-29
 2470         .FIN
 2480         .DO ]3-30>]2
 2490         >MOVE ]1+]3-31,]1+]3-30
 2500         .FIN
 2510         .DO ]3-31>]2
 2520         >MOVE ]1+]3-32,]1+]3-31
 2530         .FIN
 2540         .DO ]3-32>]2
 2550         >MOVE ]1+]3-33,]1+]3-32
 2560         .FIN
 2570         .DO ]3-33>]2
 2580         >MOVE ]1+]3-34,]1+]3-33
 2590         .FIN
 2600         .DO ]3-34>]2
 2610         >MOVE ]1+]3-35,]1+]3-34
 2620         .FIN
 2630         .DO ]3-35>]2
 2640         >MOVE ]1+]3-36,]1+]3-35
 2650         .FIN
 2660         .DO ]3-36>]2  
 2670         >MOVE ]1+]3-37,]1+]3-36
 2680         .FIN
 2690         .DO ]3-37>]2
 2700         >MOVE ]1+]3-38,]1+]3-37
 2710         .FIN
 2720         .DO ]3-38>]2
 2730         >MOVE ]1+]3-39,]1+]3-38
 2740         .FIN
 2750         .EM
 2760  *
 2770  *
 2780  *
 2790         .MA MOVEL    MOVE LEFT ROW,COLLOW,COLHIGH FROM 0-39
 2800         .DO ]3>]2
 2810         >MOVE ]1+]2+1,]1+]2
 2820         .FIN
 2830         .DO ]3-1>]2
 2840         >MOVE ]1+]2+2,]1+]2+1
 2850         .FIN
 2860         .DO ]3-2>]2
 2870         >MOVE ]1+]2+3,]1+]2+2 
 2880         .FIN
 2890         .DO ]3-3>]2
 2900         >MOVE ]1+]2+4,]1+]2+3
 2910         .FIN
 2920         .DO ]3-4>]2
 2930         >MOVE ]1+]2+5,]1+]2+4
 2940         .FIN
 2950         .DO ]3-5>]2
 2960         >MOVE ]1+]2+6,]1+]2+5
 2970         .FIN
 2980         .DO ]3-6>]2
 2990         >MOVE ]1+]2+7,]1+]2+6
 3000         .FIN
 3010         .DO ]3-7>]2
 3020         >MOVE ]1+]2+8,]1+]2+7
 3030         .FIN
 3040         .DO ]3-8>]2
 3050         >MOVE ]1+]2+9,]1+]2+8
 3060         .FIN
 3070         .DO ]3-9>]2
 3080         >MOVE ]1+]2+10,]1+]2+9
 3090         .FIN
 3100         .DO ]3-10>]2
 3110         >MOVE ]1+]2+11,]1+]2+10
 3120         .FIN
 3130         .DO ]3-11>]2
 3140         >MOVE ]1+]2+12,]1+]2+11
 3150         .FIN
 3160         .DO ]3-12>]2
 3170         >MOVE ]1+]2+13,]1+]2+12
 3180         .FIN
 3190         .DO ]3-13>]2
 3200         >MOVE ]1+]2+14,]1+]2+13
 3210         .FIN
 3220         .DO ]3-14>]2
 3230         >MOVE ]1+]2+15,]1+]2+14
 3240         .FIN
 3250         .DO ]3-15>]2
 3260         >MOVE ]1+]2+16,]1+]2+15
 3270         .FIN
 3280         .DO ]3-16>]2
 3290         >MOVE ]1+]2+17,]1+]2+16
 3300         .FIN
 3310         .DO ]3-17>]2
 3320         >MOVE ]1+]2+18,]1+]2+17
 3330         .FIN
 3340         .DO ]3-18>]2
 3350         >MOVE ]1+]2+19,]1+]2+18
 3360         .FIN
 3370         .DO ]3-19>]2
 3380         >MOVE ]1+]2+20,]1+]2+19
 3390         .FIN
 3400         .DO ]3-20>]2
 3410         >MOVE ]1+]2+21,]1+]2+20
 3420         .FIN
 3430         .DO ]3-21>]2
 3440         >MOVE ]1+]2+22,]1+]2+21
 3450         .FIN
 3460         .DO ]3-22>]2
 3470         >MOVE ]1+]2+23,]1+]2+22
 3480         .FIN
 3490         .DO ]3-23>]2
 3500         >MOVE ]1+]2+24,]1+]2+23
 3510         .FIN
 3520         .DO ]3-24>]2
 3530         >MOVE ]1+]2+25,]1+]2+24
 3540         .FIN
 3550         .DO ]3-25>]2
 3560         >MOVE ]1+]2+26,]1+]2+25
 3570         .FIN
 3580         .DO ]3-26>]2
 3590         >MOVE ]1+]2+27,]1+]2+26
 3600         .FIN
 3610         .DO ]3-27>]2
 3620         >MOVE ]1+]2+28,]1+]2+27
 3630         .FIN
 3640         .DO ]3-28>]2
 3650         >MOVE ]1+]2+29,]1+]2+28
 3660         .FIN
 3670         .DO ]3-29>]2
 3680         >MOVE ]1+]2+30,]1+]2+29
 3690         .FIN
 3700         .DO ]3-30>]2
 3710         >MOVE ]1+]2+31,]1+]2+30
 3720         .FIN
 3730         .DO ]3-31>]2
 3740         >MOVE ]1+]2+32,]1+]2+31
 3750         .FIN
 3760         .DO ]3-32>]2
 3770         >MOVE ]1+]2+33,]1+]2+32
 3780         .FIN
 3790         .DO ]3-33>]2
 3800         >MOVE ]1+]2+34,]1+]2+33
 3810         .FIN
 3820         .DO ]3-34>]2
 3830         >MOVE ]1+]2+35,]1+]2+34
 3840         .FIN
 3850         .DO ]3-35>]2
 3860         >MOVE ]1+]2+36,]1+]2+35
 3870         .FIN
 3880         .DO ]3-36>]2  
 3890         >MOVE ]1+]2+37,]1+]2+36
 3900         .FIN
 3910         .DO ]3-37>]2
 3920         >MOVE ]1+]2+38,]1+]2+37
 3930         .FIN
 3940         .DO ]3-38>]2
 3950         >MOVE ]1+]2+39,]1+]2+38
 3960         .FIN
 3970         .EM
 3980  *
 3990  *
 4000  *
 4010         .MA MOVEU    MOVE UP COL,ROWLOW,ROWHIGH FROM 0-23
 4020         .DO ]2<1
 4030         .DO ]3+1>1
 4040         >MOVE ]1+R1,]1+R0
 4050         .FIN
 4060         .FIN
 4070         .DO ]2<2
 4080         .DO ]3+1>2
 4090         >MOVE ]1+R2,]1+R1
 4100         .FIN
 4110         .FIN
 4120         .DO ]2<3
 4130         .DO ]3+1>3
 4140         >MOVE ]1+R3,]1+R2
 4150         .FIN
 4160         .FIN
 4170         .DO ]2<4
 4180         .DO ]3+1>4
 4190         >MOVE ]1+R4,]1+R3
 4200         .FIN
 4210         .FIN
 4220         .DO ]2<5
 4230         .DO ]3+1>5
 4240         >MOVE ]1+R5,]1+R4
 4250         .FIN
 4260         .FIN
 4270         .DO ]2<6
 4280         .DO ]3+1>6
 4290         >MOVE ]1+R6,]1+R5
 4300         .FIN
 4310         .FIN
 4320         .DO ]2<7
 4330         .DO ]3+1>7
 4340         >MOVE ]1+R7,]1+R6
 4350         .FIN
 4360         .FIN
 4370         .DO ]2<8
 4380         .DO ]3+1>8
 4390         >MOVE ]1+R8,]1+R7
 4400         .FIN
 4410         .FIN
 4420         .DO ]2<9
 4430         .DO ]3+1>9
 4440         >MOVE ]1+R9,]1+R8
 4450         .FIN
 4460         .FIN
 4470         .DO ]2<10
 4480         .DO ]3+1>10
 4490         >MOVE ]1+R10,]1+R9
 4500         .FIN
 4510         .FIN
 4520         .DO ]2<11
 4530         .DO ]3+1>11
 4540         >MOVE ]1+R11,]1+R10
 4550         .FIN
 4560         .FIN
 4570         .DO ]2<12
 4580         .DO ]3+1>12
 4590         >MOVE ]1+R12,]1+R11
 4600         .FIN
 4610         .FIN
 4620         .DO ]2<13
 4630         .DO ]3+1>13
 4640         >MOVE ]1+R13,]1+R12
 4650         .FIN
 4660         .FIN
 4670         .DO ]2<14
 4680         .DO ]3+1>14
 4690         >MOVE ]1+R14,]1+R13
 4700         .FIN
 4710         .FIN
 4720         .DO ]2<15
 4730         .DO ]3+1>15
 4740         >MOVE ]1+R15,]1+R14
 4750         .FIN
 4760         .FIN
 4770         .DO ]2<16
 4780         .DO ]3+1>16
 4790         >MOVE ]1+R16,]1+R15
 4800         .FIN
 4810         .FIN
 4820         .DO ]2<17
 4830         .DO ]3+1>17
 4840         >MOVE ]1+R17,]1+R16
 4850         .FIN
 4860         .FIN
 4870         .DO ]2<18
 4880         .DO ]3+1>18
 4890         >MOVE ]1+R18,]1+R17
 4900         .FIN
 4910         .FIN
 4920         .DO ]2<19
 4930         .DO ]3+1>19
 4940         >MOVE ]1+R19,]1+R18
 4950         .FIN
 4960         .FIN
 4970         .DO ]2<20
 4980         .DO ]3+1>20
 4990         >MOVE ]1+R20,]1+R19
 5000         .FIN
 5010         .FIN
 5020         .DO ]2<21
 5030         .DO ]3+1>21
 5040         >MOVE ]1+R21,]1+R20
 5050         .FIN
 5060         .FIN
 5070         .DO ]2<22
 5080         .DO ]3+1>22
 5090         >MOVE ]1+R22,]1+R21
 5100         .FIN
 5110         .FIN
 5120         .DO ]2<23
 5130         .DO ]3+1>23
 5140         >MOVE ]1+R23,]1+R22
 5150         .FIN
 5160         .FIN
 5170         .EM
 5180  *
 5190  *
 5200  *
 5210         .MA MOVED    MOVE DOWN COL,ROWLOW,ROWHIGH FROM 0-23
 5220         .DO ]2<23
 5230         .DO ]3+1>23
 5240         >MOVE ]1+R22,]1+R23
 5250         .FIN
 5260         .FIN
 5270         .DO ]2<22
 5280         .DO ]3+1>22
 5290         >MOVE ]1+R21,]1+R22
 5300         .FIN
 5310         .FIN
 5320         .DO ]2<21
 5330         .DO ]3+1>21
 5340         >MOVE ]1+R20,]1+R21
 5350         .FIN
 5360         .FIN
 5370         .DO ]2<20
 5380         .DO ]3+1>20
 5390         >MOVE ]1+R19,]1+R20
 5400         .FIN
 5410         .FIN
 5420         .DO ]2<19
 5430         .DO ]3+1>19
 5440         >MOVE ]1+R18,]1+R19
 5450         .FIN
 5460         .FIN
 5470         .DO ]2<18
 5480         .DO ]3+1>18
 5490         >MOVE ]1+R17,]1+R18
 5500         .FIN
 5510         .FIN
 5520         .DO ]2<17
 5530         .DO ]3+1>17
 5540         >MOVE ]1+R16,]1+R17
 5550         .FIN
 5560         .FIN
 5570         .DO ]2<16
 5580         .DO ]3+1>16
 5590         >MOVE ]1+R15,]1+R16
 5600         .FIN
 5610         .FIN
 5620         .DO ]2<15
 5630         .DO ]3+1>15
 5640         >MOVE ]1+R14,]1+R15
 5650         .FIN
 5660         .FIN
 5670         .DO ]2<14
 5680         .DO ]3+1>14
 5690         >MOVE ]1+R13,]1+R14
 5700         .FIN
 5710         .FIN
 5720         .DO ]2<13
 5730         .DO ]3+1>13
 5740         >MOVE ]1+R12,]1+R13
 5750         .FIN
 5760         .FIN
 5770         .DO ]2<12
 5780         .DO ]3+1>12
 5790         >MOVE ]1+R11,]1+R12
 5800         .FIN
 5810         .FIN
 5820         .DO ]2<11
 5830         .DO ]3+1>11 
 5840         >MOVE ]1+R10,]1+R11
 5850         .FIN
 5860         .FIN
 5870         .DO ]2<10
 5880         .DO ]3+1>10
 5890         >MOVE ]1+R9,]1+R10
 5900         .FIN
 5910         .FIN
 5920         .DO ]2<9
 5930         .DO ]3+1>9
 5940         >MOVE ]1+R8,]1+R9
 5950         .FIN
 5960         .FIN
 5970         .DO ]2<8 
 5980         .DO ]3+1>8
 5990         >MOVE ]1+R7,]1+R8
 6000         .FIN
 6010         .FIN
 6020         .DO ]2<7  
 6030         .DO ]3+1>7
 6040         >MOVE ]1+R6,]1+R7
 6050         .FIN
 6060         .FIN
 6070         .DO ]2<6
 6080         .DO ]3+1>6
 6090         >MOVE ]1+R5,]1+R6
 6100         .FIN
 6110         .FIN
 6120         .DO ]2<5
 6130         .DO ]3+1>5
 6140         >MOVE ]1+R4,]1+R5
 6150         .FIN
 6160         .FIN
 6170         .DO ]2<4
 6180         .DO ]3+1>4
 6190         >MOVE ]1+R3,]1+R4
 6200         .FIN
 6210         .FIN
 6220         .DO ]2<3
 6230         .DO ]3+1>3
 6240         >MOVE ]1+R2,]1+R3
 6250         .FIN
 6260         .FIN
 6270         .DO ]2<2
 6280         .DO ]3+1>2
 6290         >MOVE ]1+R1,]1+R2
 6300         .FIN
 6310         .FIN
 6320         .DO ]2<1
 6330         .DO ]3+1>1
 6340         >MOVE ]1+R0,]1+R1
 6350         .FIN
 6360         .FIN
 6370         .EM
 6380  *
 6390  *
 6400  *--------------------------------
 6410  *
 6420  *      SPIRAL PROGRAM
 6430         .OR $6000    OUT OF THE WAY
 6440         .TF SPIRAL.OBJ
 6450  *
 6460  *
 6470  SPIRAL LDA #' '+$80 GET A SPACE
 6480         STA R12+12   PUT IT IN CENTER
 6490         LDX #960     HOW MANY TIMES ?
 6500         LDY /960     HIGH ORDER
 6510  *
 6520  SPI1   >MOVED 0,0,23
 6530         >MOVEL R0,0,39
 6540         >MOVEU 39,0,23
 6550         >MOVER R23,1,39
 6560  *
 6570         >MOVED 1,1,23
 6580         >MOVEL R1,1,38
 6590         >MOVEU 38,1,22
 6600         >MOVER R22,2,38
 6610  *
 6620         >MOVED 2,2,22
 6630         >MOVEL R2,2,37
 6640         >MOVEU 37,2,21
 6650         >MOVER R21,3,37
 6660  *
 6670         >MOVED 3,3,21
 6680         >MOVEL R3,3,36
 6690         >MOVEU 36,3,20
 6700         >MOVER R20,4,36
 6710  *
 6720         >MOVED 4,4,20
 6730         >MOVEL R4,4,35
 6740         >MOVEU 35,4,19
 6750         >MOVER R19,5,35
 6760  *
 6770         >MOVED 5,5,19
 6780         >MOVEL R5,5,34
 6790         >MOVEU 34,5,18
 6800         >MOVER R18,6,34
 6810  *
 6820         >MOVED 6,6,18
 6830         >MOVEL R6,6,33
 6840         >MOVEU 33,6,17
 6850         >MOVER R17,7,33
 6860  *
 6870         >MOVED 7,7,17
 6880         >MOVEL R7,7,32
 6890         >MOVEU 32,7,16
 6900         >MOVER R16,8,32
 6910  *
 6920         >MOVED 8,8,16
 6930         >MOVEL R8,8,31
 6940         >MOVEU 31,8,15
 6950         >MOVER R15,9,31
 6960  *
 6970         >MOVED 9,9,15
 6980         >MOVEL R9,9,30
 6990         >MOVEU 30,9,14
 7000         >MOVER R14,10,30
 7010  *
 7020         >MOVED 10,10,14
 7030         >MOVEL R10,10,29
 7040         >MOVEU 29,10,13
 7050         >MOVER R13,11,29
 7060  *
 7070         >MOVED 11,11,13
 7080         >MOVEL R11,11,28
 7090         >MOVEU 28,11,12
 7100         >MOVER R12,12,28
 7110  *
 7120         DEX
 7130         CPX #$FF
 7140         BNE SPI2
 7150         DEY
 7160         CPY #$FF
 7170         BNE SPI2
 7180         RTS
 7190  SPI2   JMP SPI1
 7200  *
 7210  ZZSIZE .EQ *-SPIRAL

